package com.ljw.miniweb.login.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

import com.ljw.miniweb.exception.NoLoginException;
import com.ljw.miniweb.login.bean.LoginBean;
import com.ljw.miniweb.login.dao.LoginDao;


/**
name    : LoginSimpleFormController
content : 접속시 사용되는 controller
date    : 2011.02.16
author  : ljw

@author ljw(jwlee1728@gmail.com)
@version 1.0

* @see class_name : "See also"라는 항목을 만들어 해당 클래스와 연결해준다.
* @see class_name#method_name : "See also"라는 항목을 만들어 특정 메소드와 연결해준다.
* @param name description : 특정 메소드가 취하는 파라메터를 기술할 때 사용된다.
* @return description : 특정 메소드의 리턴값을 기술할 때 사용된다.
* @exception class_name : 특정 메소드가 발생시킬 수 있는 에외상황을 기술할 때 사용된다.
*/


@Controller
@RequestMapping(value="loginProcess.ljw")
public class LoginSimpleFormController{
	
	protected final Log logger = LogFactory.getLog(this.getClass());
	
	@Resource(name="loginDao")
	private LoginDao loginDao;
	
	
	/*public LoginController(){
		setCommandClass(LoginBean.class);
		setCommandName("loginBean");
	}*/
	
	/*public void setLoginDao(LoginDao loginDao){
		this.loginDao =loginDao; 
	}*/


//	@Override
//	protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
//	
//		logger.info("LoginSimpleFormController");
//		
//		String user_id = request.getParameter("user_id");
//		String user_pass = request.getParameter("user_pass");
//		
//		boolean result = loginDao.getUser(user_id, user_pass);
//		
//		if(result == true)
//			return new ModelAndView(getSuccessView());
//		else
//			return new ModelAndView(getFormView());
//		
//		/*request.setAttribute("test", "testString");
//		
//		logger.info("throws NoLoginException");
//		if(1==1)
//			throw new NoLoginException("noLogin");
//		
//		return new ModelAndView(getFormView());*/
//	}
	
	@RequestMapping(params="method=login")
	public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception {
		logger.info("LoginSimpleFormController");
		
		String user_id = request.getParameter("user_id");
		String user_pass = request.getParameter("user_pass");
		
		boolean result = loginDao.getUser(user_id, user_pass);
		
		if(result == true)
			return new ModelAndView("/WEB-INF/main/main.jsp");
		else
			return new ModelAndView("/WEB-INF/login/login.jsp");
	}
}
